#define _CRT_SECURE_NO_WARNINGS
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
//int main()
//{
//	printf("file:%d\n", __TIME__);
//	printf("%s\n", __TIME__);
//	printf("%s", __DATE__);
//	return 0;
//}
//#define VAR(num) c##num
//int Change(int e)
//{
//	int ret = 0;
//	int c1, c2;
//	int tmp = 0;
//	for (int i = 0;i < 16;i++)
//	{
//		c1 = e % 2;
//		e /= 2;
//		c2 = e % 2;
//		e /= 2;
//		tmp = c1;
//		c1 = c2;
//		c2 = tmp;
//		ret = (c1 + 2 * c2) * pow(2, 2 * i) + ret;
//	}
//	return ret;
//}

//0101
//1010
//#define CHANGE(e) (((e&0x55555555)<<1)+((e&0xaaaaaaaaa)>>1))
//int main()
//{
//	int result = CHANGE(5);
//	//int result = Change(1);
//	printf("%d\n", result);
//	return 0;
//}

//offsetof��ʵ��
//#include <stddef.h>
//#define my_offsetof(type,var) (size_t)&(((type*)0)->var)
//
//struct s
//{
//	char a;
//	int b;
//};
//int main()
//{
//	int i = offsetof(struct s, b);
//	printf("%d\n", i);
//
//	int j = my_offsetof(struct s, b);
//	printf("%d\n", j);
//
//	return 0;
//}
//int Fibonacci(int n)
//{
//	int ret = 0;
//	if (n <= 1) ret = 0;
//	if (n == 2) ret = 1;
//	if (n > 2)
//	{
//		ret = Fibonacci(n - 1) + Fibonacci(n - 2);
//	}
//	return ret;
//
//}
//
//int main()
//{
//	int N = 0;
//	scanf("%d", &N);
//	int i = 1;
//	int result = 0;
//	for(i =1;;i++)
//	{
//		int com = Fibonacci(i);
//		if (com > N)
//		{
//			if ((Fibonacci(i) + Fibonacci(i - 1)) / 2>N)
//			{
//				result = N - Fibonacci(i - 1);
//				break;
//
//			}
//			else
//			{
//				result = Fibonacci(i) - N;
//				break;
//			}
//		}
//
//	}
//	printf("%d\n", result);
//	return 0;
////}
//
//int mian()
//{
//	int a[2][4];
//	int a[1] = { 1,2,3,4 };
//    return 0;
//}
//void Replace(char* p,int len)
//{
//	int count = 1;
//	char* pc = p;
//	while (*p != '\0')
//	{
//	
//		if (*p == ' ')
//		{
//			
//			for (int i =len;i>count;i--)
//			{
// 				*(pc + i + 1) = *(pc + i - 1);
//			}
//			*p = '%';
//			*(p + 1) = '2';
//			*(p + 2) = '0';
//			len += 3;
//		}
//		
//		p++;
//		count++;
//	}
//}
//int main()
//{
//	char ch[30] = "We Are Happy";
//	Replace(ch,12);
//	printf("%s\n", ch);
//	return 0;
//}
//int main()
//{
//	int i = 6;
//	if (i <= 6) printf("hello\n");;
//	else printf("bye-bye\n");;
//	return 0;
//}
//#include<math.h>
//#include<stdio.h>
//long long Binary(int N)
//{
//    long long ret = 0;
//    int pos = 0;
//    while (N)
//    {
//        int tmp = N % 2;
//        ret += tmp * pow(10, pos);
//        N /= 2;
//        pos++;
//    }
//
//    return ret;
//}
//int main()
//{
//    int N = 0;
//    while (scanf("%d", &N) == 1)
//    {
//        long long ret = Binary(N);
//        printf("%lld\n", ret);
//    }
//    return 0;
//}
//�ַ�
//#include<stdio.h>
//void Binary(N)
//{
//	if (N == 0)
//	{
//		printf("0");
//		return;
//	}
//
//	char arr[30] = { 0 };
//	int i = 0;
//	while (N)
//	{
//		arr[i] = N % 2+'0';
//		N /= 2;
//		i++;
//	}
//	//�����ӡ
//	for (int sz = strlen(arr) - 1; sz >= 0; sz--)
//	{
//		printf("%c", arr[sz]);
//	}
//
//}
//void  Binary(N)
//{
//	if (N == 0)
//	{
//		printf("0");
//	}
//	else if(N==1)
//	{
//		printf("1");
//	}
//	else 
//	{
//		Binary(N / 2);
//		printf("%d", N % 2);
//	}
//	
//}
//int main()
//{
//	int N = 0;
//	int a = 0;
//	while ((a=scanf("%d", &N)) ==1)
//	{
//	     Binary(N);
//	}
//	return 0;
//}

//#include<string.h>
//#include<stdio.h>
//#include<math.h>
//#include<errno.h>
//#include<stdlib.h>
//int is_prime(int n)
//{
//    if (n == 1) return 0;
//    for (int i = 2;i < sqrt(n);i++)
//    {
//        if (n % i == 0) return 0;
//    }
//    return n;
//}
//int main()
//{
//    FILE* pf = fopen("in.txt", "w+");
//    if (!pf)
//    {
//        perror("open");
//        exit(0);
//    }
//    int arr[30] = { 0 };
//    int i = 0;
//    while (i < 3)
//    {
//        scanf("%d", &arr[i]);
//        fprintf(pf, "%d ", arr[i]);
//        i++;
//    }
//    int tmp = 0;
//    double sum = 0;
//    int count = 0;
//    rewind(pf);
//    while (fscanf(pf, "%d", &tmp) == 1)
//    {
//        if (tmp = is_prime(tmp))
//        {
//            sum += tmp;
//            count++;
//        }
//    }
//    FILE* po = fopen("out.txt", "w");
//    if (!po) {
//        printf("%s\n", strerror(errno));
//        exit(0);
//
//    }
//    double average = sum / count;
//    fprintf(po, "%.2lf\n", average);
//    fclose(po);
//    po = NULL;
//    fclose(pf);
//    pf = NULL;
//    return 0;
//}
#include<stdio.h>
int main()
{
    char arr[1000] = { 0 };
    int N;
    scanf("%d", &N);
    int i = 0;
    for ( i = 0;i < N;i++)
    {
        arr[i] = i + 1;
    }
    int count = 0;
    int num = 0;
    while (count < N - 1)
    {
        for (int j = 0;j < N;j++)
        {
            if (arr[j] != '0')
            {
                num++;
                if (num % 3 == 0)
                {
                    arr[j] = '0';
                    count++;
                }
            }
        }
    }
    i = 0;
    while (arr[i++] == '0');
    printf("%d\n", arr[i - 1]);
    return 0;
}